//
//  b2DebugDraw.h
//  SkyFight
//
//  Created by HoangLinh on 7/26/13.
//
//

#ifndef __SkyFight__b2DebugDraw__
#define __SkyFight__b2DebugDraw__

#include "Box2D/Box2D.h"
#include "cocos2d.h"

USING_NS_CC;

class b2DebugDraw : public b2Draw
{
public:
    b2DebugDraw(float32 ratio);
    
    void DrawPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color);
    void DrawSolidPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color);
    void DrawCircle(const b2Vec2& center, float32 radius, const b2Color& color);
    void DrawSolidCircle(const b2Vec2& center, float32 radius, const b2Vec2& axis, const b2Color& color);
    void DrawSegment(const b2Vec2& p1, const b2Vec2& p2, const b2Color& color);
    void DrawTransform(const b2Transform& xf);
    void DrawPoint(const b2Vec2& p, float32 size, const b2Color& color);
    void DrawString(int x, int y, const char* string, ...);
    void DrawAABB(b2AABB* aabb, const b2Color& color);
    
private:
    CCGLProgram * mShaderProgram;
    GLint mColorLocation;
    float mRatio;
};

#endif /* defined(__SkyFight__b2DebugDraw__) */
